"""
字符串的常用操作

    len(字符串) 获取字符串中的字符长度
    字符串.count(子字符串) 获取指定字符或者子字符串在字符串中出现的次数
    字符串.index(子字符串) 获取某一个子字符串在指定字符串中第一次出现的位置

Python 中内置了很多操作字符串的方法：

    1 判断型
        string.isspace() 如果字符串中只包含空格，返回 True
        string.isalnum() 如果字符串中至少有一个字符并且所有字符都是字母或数字返回 True
        string.isalpha() 如果字符串中至少有一个字符并且所有字符都是字母返回 True
        string.isdecimal() 如果字符串中只包含数字返回 True 全角数字
        string.isdigit() 如果字符串中只包含数字返回 True 全角数字、(1)、\u00b2
        string.isnumeric() 如果字符串中只包含数字返回 True 全角数字、汉字数字
        string.istitle() 如果字符串中每个单词的首字母都是大写返回 True
        string.islower() 如果字符串中的字母都是小写返回 True
        string.isupper() 如果字符串中的字母都是大写返回 True

    2 查找和替换
        string.startswith(str) 检查字符串是否以 str 开始
        string.endswith() 检查字符串是否以 str 结尾
        string.find(str, start=0, end=len(string)) 在指定的索引范围内查找字符串
        string.rfind(str, start=0, end=len(string)) 与 find() 函数类似，只不过从字符串右边开始查找
        string.index(str, start=0, end=len(string)) 与 find() 函数类似，只不过 str 不存在会报错
        string.rindex(str, start=0, end=len(string)) 与 index() 函数类似，只不过从字符串右边开始查找
        string.replace(old_str, new_str, num=string.count(old_str)) 替换指定的字符串，如果指定 num 参数，则替换不能超过 num 次

    3 大小写转换
        string.capitalize() 把字符串的第一个字母转成大写
        string.title() 把字符串的所有单词的首字母转成大写
        string.lower() 把字符串的所有字母转成小写 
        string.upper() 把字符串的所有字母转成大写
        string.swapcase() 把字符串中的大小写字母反转，小写变大写，大写变小写

    4 文本对其
        string.ljust(width) 返回原字符左对齐，并用空格填充至长度 width 的字符串 
        string.rjust(width) 返回原字符右对齐，并用空格填充至长度 width 的字符串 
        string.center(width) 返回原字符居中对齐，并用空格填充至长度 width 的字符串 

    5 去除空白字符
        string.lstrip() 去除字符串左边的空白字符
        string.rstrip() 去除字符串右边的空白字符
        string.strip() 去除字符串两边的空白字符

    6 拆分和连接
        string.partition(str) 把字符串拆成一个三元素元组 (str左边字符, str, str右边字符)
        string.rpartition(str) 类似partition，从右边开始拆分
        string.split(str="", num) 以 str 为分隔符切片字符串，则仅分割 num + 1 个子串，默认 str 包含 \r \n \t 和 空格
        string.splitlines() 按照  \r \n \t 和 空格 进行分割字符串，返回一个包含各行作为各元素的列表
        string.join(seq) 以 string 作为分隔符，连接 seq 中的所有元素

"""

hello_str = "hello python"

# 统计字符串长度
print(len(hello_str))

# 统计字符串中某一个字符或者子字符串出现的次数
print(hello_str.count("o"))
print(hello_str.count("python"))

# 获取某一个子字符串第一次出现的位置
## 如果指定的子字符串不存在，会报错 --> ValueError: substring not found
print(hello_str.index("python"))

# 判断字符串是否以 hello 开始
print(hello_str.startswith("hello"))

# 替换字符串 把 python 替换成 world
## replace() 方法执行完成之后，会返回一个新的字符串
print(hello_str.replace("python", "world"))

